#ifndef AN_ADBSERVER_H
#define AN_ADBSERVER_H

#include <QObject>
#include <QJsonObject>

#include "AnThread.h"
#include "AnCallback.h"

/**
 * @brief The AnAdbServer class 为UI提供接口，管理上层的请求
 */
class AnAdbServer : public QObject
{
	Q_OBJECT
public:
	/**
	 * @brief getAnThread 获取一个新的请求处理线程，用于u线程管理
	 * @return 新的请求处理线程
	 */
	AnThread * getAnThread();


public slots:
	/**
	 * @brief adbServerManager 用于管理请求的函数，异步处理，函数立即返回
	 * @param an_request 描述请求的类型以及请求的数据
	 * @param an_callback 包含回调函数，其中的response函数将在请求处理完成后调用
	 */
	void adbServerManager(QJsonObject an_request, AnCallback * an_callback);

	/**
	 * @brief threadFinished 请求处理线程结束后用于u回收该线程的内存
	 * @param an_thread 结束的线程
	 */
	void threadFinished(AnThread * an_thread);

};



#endif
